package com.example.demo.ds;

import com.ulisesbocchio.jasyptspringboot.EncryptablePropertyDetector;

/**
 * 自定义的属性探测器
 *
 * @author Administrator
 */
public class CustomEncryptablePropertyDetector implements EncryptablePropertyDetector {

    /**
     * 探测字符串
     */
    private final String flagStr = "ENC@";

    /**
     * 是否为可以解密的字符串【自定义规则为 ENC@开头】
     *
     * @param value 全部的字符串
     * @return 是否是解密的字符串，true，是，false，否
     */
    @Override
    public boolean isEncrypted(String value) {
        if (value != null) {
            return value.startsWith(flagStr);
        }
        return false;
    }

    /**
     * 截取到除了标识之后的值【截取ENC@之后的字符串】
     *
     * @param value 带前缀
     * @return string 去掉标识符的字符串
     */
    @Override
    public String unwrapEncryptedValue(String value) {
        return value.substring(flagStr.length());
    }
}
